#include "CManorBattleCfg.h"
#include "commerrno.h"
#include "../mainctrl.h"

int CManorBattleCfgData::CheckValidData()
{
    if (!IsValidID())
    {
        return ERROR_MANOR_BATTLE_CONFIG_DATA;
    }

    for (int i = 0; i < _astItemList.Size(); ++i)
    {
        if (_astItemList[i]._ucItemType < ITEM_TYPE_MIN ||
            _astItemList[i]._ucItemType > ITEM_TYPE_MAX)
        {
            return ERROR_MANOR_BATTLE_CONFIG_DATA;
        }

        //数量不能为0 一些数值性奖励没有配置ID
        if (_astItemList[i]._iItemCount <= 0 ||
            _astItemList[i]._usItemConfigID < 0)
        {
            return ERROR_MANOR_BATTLE_CONFIG_DATA;
        }
    }

    return 0;
}

int CManorBattleCfg::AddConfig(CManorBattleCfgData& stCfgData)
{
    int iRet = 0;
    int iIndex = 0;
    
    iRet = stCfgData.CheckValidData();
    CT_RETURN(iRet);

    iIndex = FindConfig(stCfgData.GetID());
    if (iIndex >= 0)
    {
        return ERROR_MANOR_BATTLE_REPEATE_ID;
    }

    iRet = _astCfgList.AddOneItem(stCfgData);
    if (iRet < 0)
    {
        return ERROR_MANOR_BATTLE_CONFIG_FULL;
    }

    return 0;
}

int CManorBattleCfg::FindConfig(int iID)
{
    for (int i = 0; i < _astCfgList.Size(); ++i)
    {
        if (_astCfgList[i].GetID() == iID)
        {
            return i;
        }
    }

    return -1;
}

CManorBattleCfgData& CManorBattleCfg::GetConfig(int iIndex)
{
    return _astCfgList[iIndex];
}

